/**
 * 柯里化
 * 函数式编程其实希望一个函数处理的问题尽可能单一，而不是将一大堆处理过程交给函数来处理
 */

//案例 第一个参数+2，第二个参数*2，第三个参数**2
function add(x, y, z) {
  x = x + 2
  y = y * 2
  z = z ** 2
  return x + y + z
}

var res = add(1, 2, 3)
console.log(res)

function curryingAdd(x) {
  x = x + 2
  return function (y) {
    y = y * 2
    return function (z) {
      z = z ** 2
      return x + y + z
    }
  }
}

var res1 = curryingAdd(1)(2)(3)
console.log(res1)
